昨天介紹了Factory這個好用的AngularJS共用工廠後,今天要介紹一個有點類同的Services,來讓大家認識。
用MAN架構打造超人般的網頁應用程式系列文章
用MAN架構打造超人般的網頁應用程式系列文章
Service介紹
當你需要做出一個共用服務時,你可以透過Servcie的方式來讓大家一起呼叫這個util或是tool api,你就可以透過Registering客制service的方式來讓大家使用,而所有的angular services都是以singleton的模式運行
有兩種Registering的方式如下:
1:
var myModule = angular.module('myModule', []);
myModule.factory('serviceId', function() {
var shinyNewServiceInstance;
return shinyNewServiceInstance;
});
2:
angular.module('myModule', [], function($provide) {
$provide.factory('serviceId', function() {
var shinyNewServiceInstance;
return shinyNewServiceInstance;
});
});
Singleton pattern
單一實體模式,保證一個類別只有一個實例(Instance),並提供一個訪問(visit)這個實例的方法。
以下面的例子來說明:
上面的教學講義統一透過一個老師來教授給學生,學生如果要學習該講義的話,一定是向該名老師學習(類似天王XX補習班,講義不對外開放,只有上課的學生可以聽老師本人講過)。
Benefits of the Singleton Pattern
Service VS Factory
Service範例
其實Service的用法與Factory一樣簡單,只要Registering之後就可以直接使用了
結語
透過Service你可以創造出可共用的工具類別,且確保該類別在此APP中僅有一項,可避免過多的資源浪費,Day 12 over!